class Solution {
public:
    double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) {
        const int m = nums1.size(), n = nums2.size();
        int mp = 0, np = 0; //nums1,nums2的数组指针
        int val, med;
        //一直循环到中位数的位置
        while(mp + np < (m + n)/ 2 + 1){
            med=val;//记录偶数情况下的前一个数
            //防止越界报错
            if(mp == m){
                val = nums2[np++];
                continue;
            }
            if(np == n){
                val = nums1[mp++];
                continue;
            }
            if(nums1[mp] <= nums2[np]){
                val = nums1[mp++];
            }
            else{
                val = nums2[np++];
            }
        }
        //若为偶数，则需要加上前一个数
        if((m + n)% 2 == 0) return (double)(val + med) / 2;
        return (double)val;
    }
};